a. Field of the Invention
The present invention relates to Web browser systems.
b. Related Art
In a Web environment, Web clients retrieve data from Web servers using Web browsers. Examples of Web browsers include the IBM's WebExplorer and Netscape Navigator. The basic Web Browser operation includes fetching the data from a remote location specified by a Universal Resource Locator (URL) and operating on (e.g. displaying) the data based on the operational instructions provided by an operator or the server (e.g. MIME type or Java applet). The Web browsers provide standard functions e.g. displaying the Web data in different encoding formats and providing means of traversing Web links. A server can add functions to be executed on certain data by providing an applet (e.g. a Java applet) associated with the data.
A client may wish to add functionality to the browser irrespective of the MIME type or content of the data. Conventional Web browser plug-ins are not suitable for such a purpose because operations are typically tied to the MIME type or content of the imported data. Examples of functions not tied to the content of the data would be where a client wishes to have the web browser log the data or check for viruses for a particular time period. This is in contrast, for example, of allowing the data to be imported and then doing logging or a virus check by a separate process.
A client may also wish to have the browser perform multiple, inter-related processing steps. This ability is not typically available in conventional web browsers since there is no mechanism to maintain persistent state information across multiple web operations performed by different applets.
On way to provide a client with enhanced functionality not tied to MIME or content type would be to use a sequence of proxy-servers with hard coded functionalities (e.g., caching, firewall protection). However, dynamically modifying the functionalities of such proxy-servers is a difficult task.